﻿CREATE PROCEDURE [dbo].[Hogar_Actividad_Actualizar]   
	@ActividadAsXml Xml
AS 
BEGIN

/*****************************************************************************************************************************************/
-- Author: Carlos Mendoza
-- Purpose:   actualiza una actividad y sus horarios
/*****************************************************************************************************************************************/ 
BEGIN TRY
    BEGIN TRAN 
	 
	 	UPDATE [dbo].[Actividad]
	 	SET [Nombre] = ActividadHorarios.Actividad.query('./Nombre').value('.','VARCHAR(50)')
			,[ResponsableId] = CAST(NULLIF(ActividadHorarios.Actividad.query('./ResponsableId').value('.','INT'),'') AS INT)
	    FROM @ActividadAsXml.nodes('/ActividadHorarios/Actividad') AS ActividadHorarios(Actividad)
		WHERE ActividadId = ActividadHorarios.Actividad.query('./ActividadId').value('.','INT')
		
		UPDATE [dbo].[HorarioActividad]
        SET [HoraComienzo] = Horarios.HorarioActividad.query('./HoraComienzo').value('.','VARCHAR(5)')
			,[HoraFin] = Horarios.HorarioActividad.query('./HoraFin').value('.','VARCHAR(5)')
        FROM @ActividadAsXml.nodes('/ActividadHorarios/Horarios/HorarioActividad') AS Horarios(HorarioActividad)
        WHERE ActividadId = Horarios.HorarioActividad.query('./ActividadId').value('.','INT')
              AND DiaSemanaId = Horarios.HorarioActividad.query('./DiaSemanaId').value('.','INT')

    COMMIT TRAN
END TRY
BEGIN CATCH
	SELECT ERROR_NUMBER() AS Number,
		ERROR_MESSAGE() AS Message
	ROLLBACK TRAN
	
END CATCH

END